/*
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
$(document).ready(function() {

    $(".click-title").mouseenter( function(    e){
        e.preventDefault();
        this.style.cursor="pointer";
    });
    $(".click-title").mousedown( function(event){
        event.preventDefault();
    });

    // Ugly code while this script is shared among several pages
    try{
        refreshHitsPerSecond(true);
    } catch(e){}
    try{
        refreshResponseTimeOverTime(true);
    } catch(e){}
    try{
        refreshResponseTimePercentiles();
    } catch(e){}
});


var responseTimePercentilesInfos = {
        data: {"result": {"minY": 1338.0, "minX": 0.0, "maxY": 5000.0, "series": [{"data": [[0.0, 1338.0], [0.1, 1353.0], [0.2, 1392.0], [0.3, 1441.0], [0.4, 1475.0], [0.5, 1499.0], [0.6, 1508.0], [0.7, 1510.0], [0.8, 1517.0], [0.9, 1544.0], [1.0, 1565.0], [1.1, 1732.0], [1.2, 1759.0], [1.3, 1775.0], [1.4, 1780.0], [1.5, 1789.0], [1.6, 1795.0], [1.7, 1796.0], [1.8, 1797.0], [1.9, 1798.0], [2.0, 1799.0], [2.1, 1799.0], [2.2, 1799.0], [2.3, 1800.0], [2.4, 1801.0], [2.5, 1801.0], [2.6, 1804.0], [2.7, 1811.0], [2.8, 1816.0], [2.9, 1820.0], [3.0, 1823.0], [3.1, 1839.0], [3.2, 1849.0], [3.3, 1859.0], [3.4, 1867.0], [3.5, 1876.0], [3.6, 1886.0], [3.7, 1904.0], [3.8, 1911.0], [3.9, 1919.0], [4.0, 1929.0], [4.1, 1933.0], [4.2, 1935.0], [4.3, 1940.0], [4.4, 1948.0], [4.5, 1960.0], [4.6, 1965.0], [4.7, 1972.0], [4.8, 1976.0], [4.9, 1981.0], [5.0, 1985.0], [5.1, 1993.0], [5.2, 1997.0], [5.3, 2002.0], [5.4, 2005.0], [5.5, 2007.0], [5.6, 2013.0], [5.7, 2019.0], [5.8, 2038.0], [5.9, 2075.0], [6.0, 2078.0], [6.1, 2085.0], [6.2, 2092.0], [6.3, 2099.0], [6.4, 2100.0], [6.5, 2104.0], [6.6, 2109.0], [6.7, 2113.0], [6.8, 2118.0], [6.9, 2121.0], [7.0, 2125.0], [7.1, 2132.0], [7.2, 2133.0], [7.3, 2139.0], [7.4, 2143.0], [7.5, 2148.0], [7.6, 2158.0], [7.7, 2159.0], [7.8, 2163.0], [7.9, 2175.0], [8.0, 2187.0], [8.1, 2190.0], [8.2, 2193.0], [8.3, 2196.0], [8.4, 2200.0], [8.5, 2204.0], [8.6, 2204.0], [8.7, 2206.0], [8.8, 2209.0], [8.9, 2223.0], [9.0, 2248.0], [9.1, 2253.0], [9.2, 2261.0], [9.3, 2273.0], [9.4, 2277.0], [9.5, 2294.0], [9.6, 2298.0], [9.7, 2306.0], [9.8, 2316.0], [9.9, 2318.0], [10.0, 2319.0], [10.1, 2320.0], [10.2, 2324.0], [10.3, 2328.0], [10.4, 2342.0], [10.5, 2346.0], [10.6, 2352.0], [10.7, 2353.0], [10.8, 2360.0], [10.9, 2364.0], [11.0, 2381.0], [11.1, 2394.0], [11.2, 2396.0], [11.3, 2399.0], [11.4, 2408.0], [11.5, 2420.0], [11.6, 2426.0], [11.7, 2433.0], [11.8, 2441.0], [11.9, 2442.0], [12.0, 2449.0], [12.1, 2454.0], [12.2, 2459.0], [12.3, 2466.0], [12.4, 2470.0], [12.5, 2476.0], [12.6, 2479.0], [12.7, 2489.0], [12.8, 2500.0], [12.9, 2505.0], [13.0, 2506.0], [13.1, 2510.0], [13.2, 2514.0], [13.3, 2515.0], [13.4, 2518.0], [13.5, 2522.0], [13.6, 2530.0], [13.7, 2536.0], [13.8, 2541.0], [13.9, 2543.0], [14.0, 2559.0], [14.1, 2564.0], [14.2, 2568.0], [14.3, 2572.0], [14.4, 2580.0], [14.5, 2584.0], [14.6, 2590.0], [14.7, 2604.0], [14.8, 2613.0], [14.9, 2616.0], [15.0, 2619.0], [15.1, 2620.0], [15.2, 2628.0], [15.3, 2633.0], [15.4, 2635.0], [15.5, 2641.0], [15.6, 2655.0], [15.7, 2663.0], [15.8, 2671.0], [15.9, 2683.0], [16.0, 2703.0], [16.1, 2714.0], [16.2, 2715.0], [16.3, 2718.0], [16.4, 2718.0], [16.5, 2722.0], [16.6, 2722.0], [16.7, 2742.0], [16.8, 2763.0], [16.9, 2765.0], [17.0, 2769.0], [17.1, 2773.0], [17.2, 2787.0], [17.3, 2798.0], [17.4, 2803.0], [17.5, 2806.0], [17.6, 2808.0], [17.7, 2810.0], [17.8, 2815.0], [17.9, 2827.0], [18.0, 2832.0], [18.1, 2839.0], [18.2, 2851.0], [18.3, 2858.0], [18.4, 2860.0], [18.5, 2865.0], [18.6, 2865.0], [18.7, 2877.0], [18.8, 2888.0], [18.9, 2893.0], [19.0, 2899.0], [19.1, 2915.0], [19.2, 2921.0], [19.3, 2925.0], [19.4, 2929.0], [19.5, 2936.0], [19.6, 2938.0], [19.7, 2941.0], [19.8, 2941.0], [19.9, 2943.0], [20.0, 2944.0], [20.1, 2960.0], [20.2, 2980.0], [20.3, 2996.0], [20.4, 3020.0], [20.5, 3034.0], [20.6, 3054.0], [20.7, 3058.0], [20.8, 3068.0], [20.9, 3070.0], [21.0, 3073.0], [21.1, 3074.0], [21.2, 3077.0], [21.3, 3079.0], [21.4, 3081.0], [21.5, 3093.0], [21.6, 3100.0], [21.7, 3105.0], [21.8, 3108.0], [21.9, 3109.0], [22.0, 3113.0], [22.1, 3115.0], [22.2, 3118.0], [22.3, 3122.0], [22.4, 3131.0], [22.5, 3136.0], [22.6, 3143.0], [22.7, 3149.0], [22.8, 3151.0], [22.9, 3156.0], [23.0, 3163.0], [23.1, 3177.0], [23.2, 3181.0], [23.3, 3188.0], [23.4, 3191.0], [23.5, 3193.0], [23.6, 3195.0], [23.7, 3199.0], [23.8, 3200.0], [23.9, 3206.0], [24.0, 3210.0], [24.1, 3217.0], [24.2, 3220.0], [24.3, 3223.0], [24.4, 3234.0], [24.5, 3246.0], [24.6, 3253.0], [24.7, 3263.0], [24.8, 3268.0], [24.9, 3268.0], [25.0, 3271.0], [25.1, 3284.0], [25.2, 3287.0], [25.3, 3288.0], [25.4, 3292.0], [25.5, 3293.0], [25.6, 3300.0], [25.7, 3308.0], [25.8, 3311.0], [25.9, 3315.0], [26.0, 3317.0], [26.1, 3322.0], [26.2, 3323.0], [26.3, 3324.0], [26.4, 3327.0], [26.5, 3329.0], [26.6, 3332.0], [26.7, 3333.0], [26.8, 3335.0], [26.9, 3336.0], [27.0, 3340.0], [27.1, 3342.0], [27.2, 3345.0], [27.3, 3348.0], [27.4, 3352.0], [27.5, 3352.0], [27.6, 3356.0], [27.7, 3365.0], [27.8, 3369.0], [27.9, 3374.0], [28.0, 3381.0], [28.1, 3386.0], [28.2, 3389.0], [28.3, 3391.0], [28.4, 3398.0], [28.5, 3401.0], [28.6, 3401.0], [28.7, 3402.0], [28.8, 3404.0], [28.9, 3405.0], [29.0, 3406.0], [29.1, 3407.0], [29.2, 3408.0], [29.3, 3409.0], [29.4, 3410.0], [29.5, 3412.0], [29.6, 3413.0], [29.7, 3414.0], [29.8, 3414.0], [29.9, 3418.0], [30.0, 3420.0], [30.1, 3422.0], [30.2, 3422.0], [30.3, 3423.0], [30.4, 3424.0], [30.5, 3424.0], [30.6, 3425.0], [30.7, 3426.0], [30.8, 3428.0], [30.9, 3428.0], [31.0, 3429.0], [31.1, 3432.0], [31.2, 3433.0], [31.3, 3435.0], [31.4, 3436.0], [31.5, 3438.0], [31.6, 3440.0], [31.7, 3442.0], [31.8, 3443.0], [31.9, 3444.0], [32.0, 3445.0], [32.1, 3447.0], [32.2, 3449.0], [32.3, 3452.0], [32.4, 3454.0], [32.5, 3455.0], [32.6, 3456.0], [32.7, 3456.0], [32.8, 3458.0], [32.9, 3460.0], [33.0, 3461.0], [33.1, 3464.0], [33.2, 3465.0], [33.3, 3469.0], [33.4, 3472.0], [33.5, 3478.0], [33.6, 3478.0], [33.7, 3480.0], [33.8, 3481.0], [33.9, 3483.0], [34.0, 3485.0], [34.1, 3488.0], [34.2, 3495.0], [34.3, 3499.0], [34.4, 3501.0], [34.5, 3504.0], [34.6, 3508.0], [34.7, 3508.0], [34.8, 3509.0], [34.9, 3510.0], [35.0, 3514.0], [35.1, 3515.0], [35.2, 3517.0], [35.3, 3519.0], [35.4, 3519.0], [35.5, 3524.0], [35.6, 3526.0], [35.7, 3527.0], [35.8, 3530.0], [35.9, 3538.0], [36.0, 3539.0], [36.1, 3545.0], [36.2, 3549.0], [36.3, 3551.0], [36.4, 3559.0], [36.5, 3562.0], [36.6, 3564.0], [36.7, 3567.0], [36.8, 3569.0], [36.9, 3570.0], [37.0, 3573.0], [37.1, 3575.0], [37.2, 3579.0], [37.3, 3581.0], [37.4, 3584.0], [37.5, 3588.0], [37.6, 3588.0], [37.7, 3591.0], [37.8, 3593.0], [37.9, 3595.0], [38.0, 3596.0], [38.1, 3598.0], [38.2, 3600.0], [38.3, 3604.0], [38.4, 3605.0], [38.5, 3606.0], [38.6, 3609.0], [38.7, 3610.0], [38.8, 3610.0], [38.9, 3614.0], [39.0, 3615.0], [39.1, 3618.0], [39.2, 3619.0], [39.3, 3621.0], [39.4, 3623.0], [39.5, 3626.0], [39.6, 3628.0], [39.7, 3629.0], [39.8, 3631.0], [39.9, 3632.0], [40.0, 3634.0], [40.1, 3634.0], [40.2, 3635.0], [40.3, 3636.0], [40.4, 3638.0], [40.5, 3642.0], [40.6, 3643.0], [40.7, 3644.0], [40.8, 3647.0], [40.9, 3647.0], [41.0, 3648.0], [41.1, 3650.0], [41.2, 3650.0], [41.3, 3651.0], [41.4, 3651.0], [41.5, 3652.0], [41.6, 3653.0], [41.7, 3654.0], [41.8, 3656.0], [41.9, 3658.0], [42.0, 3659.0], [42.1, 3661.0], [42.2, 3662.0], [42.3, 3662.0], [42.4, 3665.0], [42.5, 3666.0], [42.6, 3667.0], [42.7, 3668.0], [42.8, 3668.0], [42.9, 3669.0], [43.0, 3671.0], [43.1, 3672.0], [43.2, 3674.0], [43.3, 3674.0], [43.4, 3677.0], [43.5, 3677.0], [43.6, 3678.0], [43.7, 3678.0], [43.8, 3679.0], [43.9, 3679.0], [44.0, 3680.0], [44.1, 3680.0], [44.2, 3681.0], [44.3, 3682.0], [44.4, 3682.0], [44.5, 3683.0], [44.6, 3684.0], [44.7, 3684.0], [44.8, 3684.0], [44.9, 3688.0], [45.0, 3688.0], [45.1, 3689.0], [45.2, 3690.0], [45.3, 3691.0], [45.4, 3691.0], [45.5, 3691.0], [45.6, 3692.0], [45.7, 3692.0], [45.8, 3693.0], [45.9, 3694.0], [46.0, 3695.0], [46.1, 3696.0], [46.2, 3697.0], [46.3, 3698.0], [46.4, 3699.0], [46.5, 3700.0], [46.6, 3701.0], [46.7, 3703.0], [46.8, 3704.0], [46.9, 3705.0], [47.0, 3705.0], [47.1, 3705.0], [47.2, 3706.0], [47.3, 3707.0], [47.4, 3707.0], [47.5, 3709.0], [47.6, 3710.0], [47.7, 3712.0], [47.8, 3713.0], [47.9, 3714.0], [48.0, 3714.0], [48.1, 3714.0], [48.2, 3715.0], [48.3, 3718.0], [48.4, 3719.0], [48.5, 3720.0], [48.6, 3721.0], [48.7, 3722.0], [48.8, 3723.0], [48.9, 3725.0], [49.0, 3726.0], [49.1, 3730.0], [49.2, 3731.0], [49.3, 3733.0], [49.4, 3733.0], [49.5, 3734.0], [49.6, 3734.0], [49.7, 3734.0], [49.8, 3735.0], [49.9, 3735.0], [50.0, 3736.0], [50.1, 3736.0], [50.2, 3736.0], [50.3, 3737.0], [50.4, 3737.0], [50.5, 3737.0], [50.6, 3739.0], [50.7, 3739.0], [50.8, 3740.0], [50.9, 3742.0], [51.0, 3744.0], [51.1, 3747.0], [51.2, 3748.0], [51.3, 3748.0], [51.4, 3750.0], [51.5, 3751.0], [51.6, 3754.0], [51.7, 3756.0], [51.8, 3757.0], [51.9, 3759.0], [52.0, 3760.0], [52.1, 3762.0], [52.2, 3765.0], [52.3, 3767.0], [52.4, 3769.0], [52.5, 3770.0], [52.6, 3770.0], [52.7, 3772.0], [52.8, 3772.0], [52.9, 3773.0], [53.0, 3773.0], [53.1, 3774.0], [53.2, 3775.0], [53.3, 3776.0], [53.4, 3778.0], [53.5, 3779.0], [53.6, 3780.0], [53.7, 3780.0], [53.8, 3781.0], [53.9, 3781.0], [54.0, 3781.0], [54.1, 3783.0], [54.2, 3784.0], [54.3, 3785.0], [54.4, 3786.0], [54.5, 3787.0], [54.6, 3787.0], [54.7, 3789.0], [54.8, 3790.0], [54.9, 3791.0], [55.0, 3791.0], [55.1, 3792.0], [55.2, 3793.0], [55.3, 3794.0], [55.4, 3794.0], [55.5, 3796.0], [55.6, 3797.0], [55.7, 3799.0], [55.8, 3800.0], [55.9, 3801.0], [56.0, 3804.0], [56.1, 3805.0], [56.2, 3806.0], [56.3, 3806.0], [56.4, 3808.0], [56.5, 3808.0], [56.6, 3810.0], [56.7, 3811.0], [56.8, 3812.0], [56.9, 3812.0], [57.0, 3814.0], [57.1, 3814.0], [57.2, 3816.0], [57.3, 3817.0], [57.4, 3818.0], [57.5, 3820.0], [57.6, 3820.0], [57.7, 3822.0], [57.8, 3824.0], [57.9, 3827.0], [58.0, 3827.0], [58.1, 3828.0], [58.2, 3828.0], [58.3, 3829.0], [58.4, 3830.0], [58.5, 3830.0], [58.6, 3831.0], [58.7, 3832.0], [58.8, 3834.0], [58.9, 3835.0], [59.0, 3836.0], [59.1, 3837.0], [59.2, 3839.0], [59.3, 3840.0], [59.4, 3840.0], [59.5, 3841.0], [59.6, 3842.0], [59.7, 3844.0], [59.8, 3845.0], [59.9, 3848.0], [60.0, 3849.0], [60.1, 3850.0], [60.2, 3852.0], [60.3, 3853.0], [60.4, 3854.0], [60.5, 3854.0], [60.6, 3855.0], [60.7, 3855.0], [60.8, 3858.0], [60.9, 3860.0], [61.0, 3860.0], [61.1, 3861.0], [61.2, 3862.0], [61.3, 3863.0], [61.4, 3864.0], [61.5, 3865.0], [61.6, 3865.0], [61.7, 3865.0], [61.8, 3867.0], [61.9, 3870.0], [62.0, 3871.0], [62.1, 3871.0], [62.2, 3875.0], [62.3, 3875.0], [62.4, 3877.0], [62.5, 3877.0], [62.6, 3878.0], [62.7, 3879.0], [62.8, 3879.0], [62.9, 3882.0], [63.0, 3883.0], [63.1, 3883.0], [63.2, 3885.0], [63.3, 3885.0], [63.4, 3886.0], [63.5, 3887.0], [63.6, 3887.0], [63.7, 3888.0], [63.8, 3889.0], [63.9, 3889.0], [64.0, 3890.0], [64.1, 3890.0], [64.2, 3891.0], [64.3, 3891.0], [64.4, 3892.0], [64.5, 3894.0], [64.6, 3894.0], [64.7, 3894.0], [64.8, 3895.0], [64.9, 3895.0], [65.0, 3897.0], [65.1, 3898.0], [65.2, 3899.0], [65.3, 3901.0], [65.4, 3903.0], [65.5, 3905.0], [65.6, 3906.0], [65.7, 3908.0], [65.8, 3909.0], [65.9, 3909.0], [66.0, 3910.0], [66.1, 3912.0], [66.2, 3913.0], [66.3, 3915.0], [66.4, 3916.0], [66.5, 3918.0], [66.6, 3920.0], [66.7, 3921.0], [66.8, 3922.0], [66.9, 3924.0], [67.0, 3926.0], [67.1, 3929.0], [67.2, 3930.0], [67.3, 3930.0], [67.4, 3930.0], [67.5, 3931.0], [67.6, 3933.0], [67.7, 3935.0], [67.8, 3937.0], [67.9, 3939.0], [68.0, 3941.0], [68.1, 3941.0], [68.2, 3942.0], [68.3, 3943.0], [68.4, 3944.0], [68.5, 3947.0], [68.6, 3951.0], [68.7, 3954.0], [68.8, 3956.0], [68.9, 3957.0], [69.0, 3960.0], [69.1, 3963.0], [69.2, 3964.0], [69.3, 3973.0], [69.4, 3978.0], [69.5, 3981.0], [69.6, 3983.0], [69.7, 3984.0], [69.8, 3985.0], [69.9, 3987.0], [70.0, 3988.0], [70.1, 3989.0], [70.2, 3991.0], [70.3, 3991.0], [70.4, 3992.0], [70.5, 3993.0], [70.6, 3993.0], [70.7, 3994.0], [70.8, 3998.0], [70.9, 4000.0], [71.0, 4001.0], [71.1, 4003.0], [71.2, 4006.0], [71.3, 4006.0], [71.4, 4008.0], [71.5, 4010.0], [71.6, 4011.0], [71.7, 4012.0], [71.8, 4015.0], [71.9, 4016.0], [72.0, 4022.0], [72.1, 4024.0], [72.2, 4026.0], [72.3, 4028.0], [72.4, 4032.0], [72.5, 4033.0], [72.6, 4034.0], [72.7, 4035.0], [72.8, 4036.0], [72.9, 4037.0], [73.0, 4038.0], [73.1, 4040.0], [73.2, 4040.0], [73.3, 4041.0], [73.4, 4042.0], [73.5, 4045.0], [73.6, 4046.0], [73.7, 4047.0], [73.8, 4049.0], [73.9, 4049.0], [74.0, 4051.0], [74.1, 4052.0], [74.2, 4053.0], [74.3, 4054.0], [74.4, 4054.0], [74.5, 4055.0], [74.6, 4056.0], [74.7, 4057.0], [74.8, 4057.0], [74.9, 4059.0], [75.0, 4060.0], [75.1, 4060.0], [75.2, 4061.0], [75.3, 4062.0], [75.4, 4063.0], [75.5, 4063.0], [75.6, 4064.0], [75.7, 4066.0], [75.8, 4067.0], [75.9, 4068.0], [76.0, 4072.0], [76.1, 4073.0], [76.2, 4074.0], [76.3, 4077.0], [76.4, 4080.0], [76.5, 4082.0], [76.6, 4084.0], [76.7, 4087.0], [76.8, 4089.0], [76.9, 4090.0], [77.0, 4091.0], [77.1, 4094.0], [77.2, 4095.0], [77.3, 4097.0], [77.4, 4098.0], [77.5, 4100.0], [77.6, 4100.0], [77.7, 4101.0], [77.8, 4102.0], [77.9, 4103.0], [78.0, 4104.0], [78.1, 4105.0], [78.2, 4106.0], [78.3, 4106.0], [78.4, 4108.0], [78.5, 4108.0], [78.6, 4111.0], [78.7, 4111.0], [78.8, 4115.0], [78.9, 4117.0], [79.0, 4121.0], [79.1, 4123.0], [79.2, 4127.0], [79.3, 4128.0], [79.4, 4131.0], [79.5, 4134.0], [79.6, 4136.0], [79.7, 4138.0], [79.8, 4139.0], [79.9, 4140.0], [80.0, 4142.0], [80.1, 4147.0], [80.2, 4148.0], [80.3, 4149.0], [80.4, 4151.0], [80.5, 4153.0], [80.6, 4153.0], [80.7, 4159.0], [80.8, 4161.0], [80.9, 4162.0], [81.0, 4163.0], [81.1, 4164.0], [81.2, 4165.0], [81.3, 4167.0], [81.4, 4168.0], [81.5, 4171.0], [81.6, 4172.0], [81.7, 4173.0], [81.8, 4174.0], [81.9, 4176.0], [82.0, 4181.0], [82.1, 4182.0], [82.2, 4182.0], [82.3, 4185.0], [82.4, 4187.0], [82.5, 4189.0], [82.6, 4191.0], [82.7, 4193.0], [82.8, 4194.0], [82.9, 4197.0], [83.0, 4201.0], [83.1, 4206.0], [83.2, 4208.0], [83.3, 4218.0], [83.4, 4221.0], [83.5, 4224.0], [83.6, 4224.0], [83.7, 4226.0], [83.8, 4228.0], [83.9, 4230.0], [84.0, 4232.0], [84.1, 4232.0], [84.2, 4233.0], [84.3, 4234.0], [84.4, 4235.0], [84.5, 4237.0], [84.6, 4237.0], [84.7, 4238.0], [84.8, 4239.0], [84.9, 4241.0], [85.0, 4243.0], [85.1, 4244.0], [85.2, 4245.0], [85.3, 4246.0], [85.4, 4247.0], [85.5, 4248.0], [85.6, 4249.0], [85.7, 4249.0], [85.8, 4251.0], [85.9, 4252.0], [86.0, 4253.0], [86.1, 4257.0], [86.2, 4258.0], [86.3, 4261.0], [86.4, 4262.0], [86.5, 4264.0], [86.6, 4265.0], [86.7, 4265.0], [86.8, 4267.0], [86.9, 4268.0], [87.0, 4271.0], [87.1, 4272.0], [87.2, 4273.0], [87.3, 4273.0], [87.4, 4274.0], [87.5, 4274.0], [87.6, 4275.0], [87.7, 4275.0], [87.8, 4277.0], [87.9, 4278.0], [88.0, 4279.0], [88.1, 4280.0], [88.2, 4281.0], [88.3, 4282.0], [88.4, 4283.0], [88.5, 4284.0], [88.6, 4287.0], [88.7, 4287.0], [88.8, 4288.0], [88.9, 4288.0], [89.0, 4290.0], [89.1, 4293.0], [89.2, 4298.0], [89.3, 4300.0], [89.4, 4301.0], [89.5, 4302.0], [89.6, 4304.0], [89.7, 4308.0], [89.8, 4310.0], [89.9, 4311.0], [90.0, 4314.0], [90.1, 4324.0], [90.2, 4324.0], [90.3, 4331.0], [90.4, 4337.0], [90.5, 4339.0], [90.6, 4342.0], [90.7, 4343.0], [90.8, 4344.0], [90.9, 4348.0], [91.0, 4351.0], [91.1, 4353.0], [91.2, 4355.0], [91.3, 4356.0], [91.4, 4356.0], [91.5, 4358.0], [91.6, 4361.0], [91.7, 4362.0], [91.8, 4363.0], [91.9, 4365.0], [92.0, 4369.0], [92.1, 4370.0], [92.2, 4371.0], [92.3, 4372.0], [92.4, 4372.0], [92.5, 4374.0], [92.6, 4376.0], [92.7, 4378.0], [92.8, 4380.0], [92.9, 4381.0], [93.0, 4382.0], [93.1, 4384.0], [93.2, 4386.0], [93.3, 4387.0], [93.4, 4388.0], [93.5, 4390.0], [93.6, 4391.0], [93.7, 4392.0], [93.8, 4394.0], [93.9, 4396.0], [94.0, 4397.0], [94.1, 4398.0], [94.2, 4399.0], [94.3, 4402.0], [94.4, 4406.0], [94.5, 4410.0], [94.6, 4413.0], [94.7, 4415.0], [94.8, 4418.0], [94.9, 4422.0], [95.0, 4425.0], [95.1, 4428.0], [95.2, 4431.0], [95.3, 4433.0], [95.4, 4435.0], [95.5, 4436.0], [95.6, 4438.0], [95.7, 4442.0], [95.8, 4445.0], [95.9, 4447.0], [96.0, 4452.0], [96.1, 4454.0], [96.2, 4454.0], [96.3, 4456.0], [96.4, 4457.0], [96.5, 4460.0], [96.6, 4463.0], [96.7, 4464.0], [96.8, 4465.0], [96.9, 4468.0], [97.0, 4468.0], [97.1, 4470.0], [97.2, 4471.0], [97.3, 4474.0], [97.4, 4476.0], [97.5, 4478.0], [97.6, 4479.0], [97.7, 4485.0], [97.8, 4486.0], [97.9, 4489.0], [98.0, 4494.0], [98.1, 4495.0], [98.2, 4501.0], [98.3, 4506.0], [98.4, 4512.0], [98.5, 4523.0], [98.6, 4540.0], [98.7, 4549.0], [98.8, 4643.0], [98.9, 4667.0], [99.0, 4671.0], [99.1, 4677.0], [99.2, 4685.0], [99.3, 4686.0], [99.4, 4694.0], [99.5, 4723.0], [99.6, 4725.0], [99.7, 4732.0], [99.8, 4987.0], [99.9, 4999.0]], "isOverall": false, "label": "HTTP Request", "isController": false}], "supportsControllersDiscrimination": true, "maxX": 100.0, "title": "Response Time Percentiles"}},
        getOptions: function() {
            return {
                series: {
                    points: { show: false }
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimePercentiles'
                },
                xaxis: {
                    tickDecimals: 1,
                    axisLabel: "Percentiles",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Percentile value in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : %x.2 percentile was %y ms"
                },
                selection: { mode: "xy" },
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentiles"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimesPercentiles"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimesPercentiles"), dataset, prepareOverviewOptions(options));
        }
};

/**
 * @param elementId Id of element where we display message
 */
function setEmptyGraph(elementId) {
    $(function() {
        $(elementId).text("No graph series with filter="+seriesFilter);
    });
}

// Response times percentiles
function refreshResponseTimePercentiles() {
    var infos = responseTimePercentilesInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimePercentiles");
        return;
    }
    if (isGraph($("#flotResponseTimesPercentiles"))){
        infos.createGraph();
    } else {
        var choiceContainer = $("#choicesResponseTimePercentiles");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimesPercentiles", "#overviewResponseTimesPercentiles");
        $('#bodyResponseTimePercentiles .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var responseTimeDistributionInfos = {
        data: {"result": {"minY": 1.0, "minX": 1300.0, "maxY": 189.0, "series": [{"data": [[1300.0, 5.0], [1400.0, 6.0], [1500.0, 10.0], [1700.0, 23.0], [1800.0, 30.0], [1900.0, 31.0], [2000.0, 23.0], [2100.0, 40.0], [2200.0, 25.0], [2300.0, 33.0], [2400.0, 29.0], [2500.0, 38.0], [2600.0, 26.0], [2700.0, 27.0], [2800.0, 34.0], [2900.0, 26.0], [3000.0, 24.0], [3100.0, 45.0], [3200.0, 36.0], [3300.0, 58.0], [3400.0, 117.0], [3500.0, 77.0], [3600.0, 167.0], [3700.0, 186.0], [3800.0, 189.0], [3900.0, 113.0], [4000.0, 132.0], [4100.0, 110.0], [4200.0, 126.0], [4300.0, 99.0], [4400.0, 79.0], [4500.0, 12.0], [4600.0, 13.0], [4700.0, 7.0], [4900.0, 3.0], [5000.0, 1.0]], "isOverall": false, "label": "HTTP Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 100, "maxX": 5000.0, "title": "Response Time Distribution"}},
        getOptions: function() {
            var granularity = this.data.result.granularity;
            return {
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimeDistribution'
                },
                xaxis:{
                    axisLabel: "Response times in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of responses",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                bars : {
                    show: true,
                    barWidth: this.data.result.granularity
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: function(label, xval, yval, flotItem){
                        return yval + " responses for " + label + " were between " + xval + " and " + (xval + granularity) + " ms";
                    }
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimeDistribution"), prepareData(data.result.series, $("#choicesResponseTimeDistribution")), options);
        }

};

// Response time distribution
function refreshResponseTimeDistribution() {
    var infos = responseTimeDistributionInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimeDistribution");
        return;
    }
    if (isGraph($("#flotResponseTimeDistribution"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimeDistribution");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        $('#footerResponseTimeDistribution .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var syntheticResponseTimeDistributionInfos = {
        data: {"result": {"minY": 11.0, "minX": 1.0, "ticks": [[0, "Requests having \nresponse time <= 500ms"], [1, "Requests having \nresponse time > 500ms and <= 1,500ms"], [2, "Requests having \nresponse time > 1,500ms"], [3, "Requests in error"]], "maxY": 1989.0, "series": [{"data": [], "color": "#9ACD32", "isOverall": false, "label": "Requests having \nresponse time <= 500ms", "isController": false}, {"data": [[1.0, 11.0]], "color": "yellow", "isOverall": false, "label": "Requests having \nresponse time > 500ms and <= 1,500ms", "isController": false}, {"data": [[2.0, 1989.0]], "color": "orange", "isOverall": false, "label": "Requests having \nresponse time > 1,500ms", "isController": false}, {"data": [], "color": "#FF6347", "isOverall": false, "label": "Requests in error", "isController": false}], "supportsControllersDiscrimination": false, "maxX": 2.0, "title": "Synthetic Response Times Distribution"}},
        getOptions: function() {
            return {
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendSyntheticResponseTimeDistribution'
                },
                xaxis:{
                    axisLabel: "Response times ranges",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                    tickLength:0,
                    min:-0.5,
                    max:3.5
                },
                yaxis: {
                    axisLabel: "Number of responses",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                bars : {
                    show: true,
                    align: "center",
                    barWidth: 0.25,
                    fill:.75
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: function(label, xval, yval, flotItem){
                        return yval + " " + label;
                    }
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var options = this.getOptions();
            prepareOptions(options, data);
            options.xaxis.ticks = data.result.ticks;
            $.plot($("#flotSyntheticResponseTimeDistribution"), prepareData(data.result.series, $("#choicesSyntheticResponseTimeDistribution")), options);
        }

};

// Response time distribution
function refreshSyntheticResponseTimeDistribution() {
    var infos = syntheticResponseTimeDistributionInfos;
    prepareSeries(infos.data, true);
    if (isGraph($("#flotSyntheticResponseTimeDistribution"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        $('#footerSyntheticResponseTimeDistribution .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var activeThreadsOverTimeInfos = {
        data: {"result": {"minY": 996.9055000000008, "minX": 1.61543178E12, "maxY": 996.9055000000008, "series": [{"data": [[1.61543178E12, 996.9055000000008]], "isOverall": false, "label": "Thread Group", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.61543178E12, "title": "Active Threads Over Time"}},
        getOptions: function() {
            return {
                series: {
                    stack: true,
                    lines: {
                        show: true,
                        fill: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of active threads",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 6,
                    show: true,
                    container: '#legendActiveThreadsOverTime'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                selection: {
                    mode: 'xy'
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : At %x there were %y active threads"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesActiveThreadsOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotActiveThreadsOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewActiveThreadsOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Active Threads Over Time
function refreshActiveThreadsOverTime(fixTimestamps) {
    var infos = activeThreadsOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotActiveThreadsOverTime"))) {
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesActiveThreadsOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotActiveThreadsOverTime", "#overviewActiveThreadsOverTime");
        $('#footerActiveThreadsOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var timeVsThreadsInfos = {
        data: {"result": {"minY": 1622.0833333333335, "minX": 1.0, "maxY": 5000.0, "series": [{"data": [[2.0, 3870.0], [3.0, 3865.0], [4.0, 3865.0], [5.0, 3864.0], [6.0, 3865.0], [7.0, 3861.0], [8.0, 3860.0], [9.0, 3855.0], [10.0, 3855.0], [11.0, 3854.0], [12.0, 3854.0], [13.0, 3854.0], [14.0, 4374.0], [15.0, 4392.0], [16.0, 4377.0], [17.0, 4399.0], [18.0, 4380.0], [19.0, 4383.0], [20.0, 4381.0], [21.0, 4499.0], [22.0, 4394.0], [23.0, 4397.0], [24.0, 4437.0], [25.0, 4372.0], [26.0, 4402.0], [27.0, 4376.0], [28.0, 4406.0], [29.0, 4376.0], [30.0, 4372.0], [31.0, 4394.0], [33.0, 4396.0], [32.0, 4387.0], [35.0, 4362.0], [34.0, 4390.0], [37.0, 4370.0], [36.0, 4363.0], [39.0, 4391.0], [38.0, 4378.0], [41.0, 4392.0], [40.0, 4371.0], [43.0, 4356.0], [42.0, 4348.0], [45.0, 4314.0], [44.0, 4311.0], [47.0, 4302.0], [46.0, 4284.0], [49.0, 4282.0], [48.0, 4301.0], [51.0, 4281.0], [50.0, 4282.0], [53.0, 4278.0], [52.0, 4280.0], [55.0, 4277.0], [54.0, 4278.0], [57.0, 4275.0], [56.0, 4274.0], [59.0, 4251.0], [58.0, 4264.0], [61.0, 4248.0], [60.0, 4249.0], [63.0, 4242.0], [62.0, 4243.0], [67.0, 4234.0], [66.0, 4235.0], [65.0, 4237.0], [64.0, 4237.0], [71.0, 4230.0], [70.0, 4232.0], [69.0, 4230.0], [68.0, 4232.0], [75.0, 4224.0], [74.0, 4218.0], [73.0, 4228.0], [72.0, 4229.0], [79.0, 3920.0], [78.0, 3939.0], [77.0, 3939.0], [76.0, 4218.0], [83.0, 3912.0], [82.0, 3915.0], [81.0, 3918.0], [80.0, 3918.0], [87.0, 3905.0], [86.0, 3908.0], [85.0, 3909.0], [84.0, 3913.0], [91.0, 3889.0], [90.0, 3898.0], [89.0, 3901.0], [88.0, 3903.0], [95.0, 3894.0], [94.0, 3891.0], [93.0, 3891.0], [92.0, 3896.0], [99.0, 3889.0], [98.0, 3895.0], [97.0, 3890.0], [96.0, 3894.0], [103.0, 3885.0], [102.0, 3887.0], [101.0, 3890.0], [100.0, 3889.0], [107.0, 3878.0], [106.0, 3877.0], [105.0, 3890.0], [104.0, 3887.0], [111.0, 3860.0], [110.0, 3864.0], [109.0, 3864.0], [108.0, 3871.0], [115.0, 3849.0], [114.0, 3848.0], [113.0, 3852.0], [112.0, 3860.0], [119.0, 3840.0], [118.0, 3840.0], [117.0, 3842.0], [116.0, 3845.0], [123.0, 3835.0], [122.0, 3834.0], [121.0, 3836.0], [120.0, 3837.0], [127.0, 3830.0], [126.0, 3831.0], [125.0, 3832.0], [124.0, 3834.0], [135.0, 3816.0], [134.0, 3815.0], [133.0, 3821.0], [132.0, 3820.0], [131.0, 3824.0], [130.0, 3827.0], [129.0, 3827.0], [128.0, 3828.0], [143.0, 3804.0], [142.0, 3806.0], [141.0, 3807.0], [140.0, 3810.0], [139.0, 3811.0], [138.0, 3811.0], [137.0, 3812.0], [136.0, 3814.0], [151.0, 3793.0], [150.0, 3795.0], [147.0, 3797.0], [146.0, 3799.0], [145.0, 3799.0], [144.0, 3803.0], [158.0, 3785.0], [156.0, 3787.5], [155.0, 3790.0], [152.0, 3791.0], [167.0, 3772.0], [166.0, 3778.0], [165.0, 3779.0], [164.0, 3780.5], [162.0, 3780.0], [160.0, 3781.0], [175.0, 3738.0], [174.0, 3750.0], [173.0, 3766.0], [172.0, 3770.0], [171.0, 3773.0], [170.0, 3773.0], [169.0, 3773.0], [168.0, 3774.0], [183.0, 3705.0], [182.0, 3707.0], [181.0, 3706.0], [180.0, 3709.0], [179.0, 3734.0], [178.0, 3736.0], [176.0, 3737.0], [191.0, 3688.0], [190.0, 3692.0], [189.0, 3692.0], [188.0, 3692.0], [187.0, 3693.0], [186.0, 3698.0], [185.0, 3700.0], [184.0, 3704.0], [199.0, 3668.0], [198.0, 3672.0], [197.0, 3676.0], [196.0, 3677.0], [195.0, 3679.0], [194.0, 3677.0], [193.0, 3679.0], [192.0, 3686.0], [207.0, 3648.0], [206.0, 3644.0], [205.0, 3651.0], [204.0, 3652.0], [203.0, 3655.0], [202.0, 3662.0], [201.0, 3665.0], [200.0, 3668.0], [215.0, 4552.0], [214.0, 3629.0], [213.0, 3630.0], [212.0, 3634.0], [211.0, 3634.0], [210.0, 3636.0], [209.0, 3644.0], [208.0, 3647.0], [223.0, 4516.0], [222.0, 3606.0], [221.0, 4523.0], [220.0, 4532.0], [219.0, 3616.0], [218.0, 4540.0], [217.0, 4545.0], [216.0, 4549.0], [231.0, 4495.0], [230.0, 4494.0], [229.0, 4501.0], [228.0, 4503.0], [227.0, 3595.0], [226.0, 4506.0], [225.0, 3599.0], [224.0, 4512.0], [239.0, 4470.0], [238.0, 3568.0], [237.0, 3573.0], [236.0, 4478.0], [235.0, 3579.0], [234.0, 4485.0], [233.0, 4489.0], [232.0, 4490.0], [247.0, 4451.0], [246.0, 4457.0], [245.0, 4454.0], [244.0, 4456.0], [243.0, 3563.0], [242.0, 4462.0], [241.0, 4466.0], [240.0, 4468.0], [255.0, 3538.0], [254.0, 3542.0], [253.0, 4425.0], [252.0, 4432.0], [251.0, 4436.0], [250.0, 3550.0], [249.0, 4442.0], [248.0, 4443.0], [270.0, 4355.0], [271.0, 3510.0], [269.0, 4370.0], [268.0, 4391.0], [267.0, 4388.0], [266.0, 4387.0], [265.0, 4406.0], [264.0, 4398.0], [263.0, 4399.0], [257.0, 4418.0], [256.0, 4422.0], [259.0, 4414.0], [258.0, 4420.0], [262.0, 4402.0], [261.0, 4410.0], [260.0, 4410.0], [286.0, 4288.0], [287.0, 4288.0], [285.0, 4283.0], [284.0, 4289.5], [282.0, 4300.0], [281.0, 4301.0], [280.0, 4304.0], [279.0, 4304.0], [273.0, 3508.0], [272.0, 3509.0], [275.0, 3507.0], [274.0, 3508.0], [278.0, 4309.0], [277.0, 3501.0], [276.0, 3503.0], [302.0, 3478.0], [303.0, 4262.0], [301.0, 4269.0], [291.0, 4276.0], [290.0, 3485.0], [289.0, 3485.0], [288.0, 4287.0], [299.0, 3478.0], [298.0, 4267.0], [297.0, 4271.0], [296.0, 4272.0], [295.0, 4274.0], [294.0, 4280.0], [293.0, 3485.0], [292.0, 4274.0], [318.0, 4235.0], [319.0, 4238.0], [317.0, 4239.0], [316.0, 4241.0], [315.0, 4244.0], [314.0, 4243.0], [313.0, 4244.0], [312.0, 4247.0], [311.0, 4252.0], [305.0, 4268.0], [304.0, 4265.0], [307.0, 4262.0], [306.0, 4265.0], [310.0, 4251.0], [309.0, 4267.0], [308.0, 4267.0], [334.0, 4142.0], [335.0, 4140.0], [333.0, 4141.0], [332.0, 3443.0], [331.0, 3444.0], [330.0, 4148.0], [329.0, 4148.0], [328.0, 4151.0], [327.0, 4153.0], [321.0, 4189.0], [320.0, 4232.0], [323.0, 4165.0], [322.0, 4167.0], [326.0, 3453.0], [325.0, 4159.0], [324.0, 4161.0], [350.0, 4108.0], [351.0, 4106.0], [349.0, 4111.0], [348.0, 4115.0], [347.0, 3447.0], [346.0, 4120.0], [345.0, 4121.0], [344.0, 3445.0], [343.0, 4123.0], [337.0, 4136.0], [336.0, 4138.0], [339.0, 3442.0], [338.0, 4134.0], [342.0, 4127.0], [341.0, 4128.0], [340.0, 4131.0], [366.0, 4066.0], [367.0, 3414.0], [365.0, 4063.0], [364.0, 3422.0], [363.0, 4076.5], [361.0, 4079.0], [360.0, 3432.0], [359.0, 3434.0], [353.0, 4100.0], [352.0, 4103.0], [355.0, 4094.0], [354.0, 4098.0], [358.0, 4088.0], [357.0, 4087.0], [356.0, 4091.0], [381.0, 4033.0], [382.0, 4032.0], [380.0, 4033.0], [371.0, 4051.0], [370.0, 4055.0], [369.0, 4054.0], [368.0, 4061.0], [379.0, 3408.0], [378.0, 4040.0], [376.0, 3406.0], [375.0, 4049.0], [374.0, 4048.0], [373.0, 4049.0], [372.0, 4045.0], [398.0, 3938.0], [399.0, 3935.0], [397.0, 3941.0], [396.0, 3941.0], [395.0, 3943.0], [394.0, 3679.0], [393.0, 3946.0], [392.0, 3992.0], [391.0, 3681.0], [385.0, 4011.0], [384.0, 4027.0], [387.0, 3958.0], [386.0, 3960.0], [390.0, 4006.0], [389.0, 3956.0], [388.0, 3683.0], [414.0, 3885.0], [415.0, 3885.0], [413.0, 3885.5], [403.0, 3926.0], [402.0, 3929.0], [401.0, 3931.0], [400.0, 3933.0], [411.0, 3889.0], [410.0, 3892.0], [409.0, 3894.0], [408.0, 3895.0], [407.0, 3897.0], [406.0, 3667.0], [405.0, 3898.0], [404.0, 3672.0], [430.0, 3846.0], [431.0, 3828.0], [429.0, 3710.0], [428.0, 3849.0], [427.0, 3859.0], [426.0, 3705.0], [425.0, 3708.0], [424.0, 3867.0], [423.0, 3712.0], [417.0, 3878.0], [416.0, 3662.0], [419.0, 3877.0], [418.0, 3879.0], [422.0, 3873.0], [421.0, 3870.0], [420.0, 3680.0], [446.0, 3760.0], [447.0, 3757.0], [445.0, 3765.0], [444.0, 3819.0], [443.0, 3769.0], [442.0, 3771.0], [441.0, 3773.0], [440.0, 3929.0], [439.0, 3930.0], [433.0, 3857.0], [432.0, 3827.0], [435.0, 3808.0], [434.0, 3820.0], [438.0, 3892.5], [436.0, 3853.0], [462.0, 4999.0], [463.0, 4987.0], [461.0, 4989.0], [460.0, 4488.0], [459.0, 3673.0], [458.0, 3689.0], [457.0, 3702.0], [456.0, 3684.0], [455.0, 5000.0], [449.0, 3746.0], [448.0, 3719.0], [451.0, 3682.0], [450.0, 3684.0], [454.0, 3700.0], [453.0, 3691.0], [452.0, 3693.0], [478.0, 4445.0], [479.0, 4447.0], [477.0, 3714.0], [476.0, 4454.0], [475.0, 4452.0], [474.0, 4456.0], [473.0, 4457.0], [472.0, 4460.0], [471.0, 3714.0], [465.0, 4477.0], [464.0, 4479.0], [467.0, 4474.0], [466.0, 4476.0], [470.0, 4463.0], [469.0, 4468.0], [468.0, 4473.0], [494.0, 3737.0], [495.0, 3734.0], [493.0, 3737.0], [492.0, 4413.0], [491.0, 3735.0], [490.0, 4417.0], [489.0, 3733.0], [488.0, 3726.0], [487.0, 4425.0], [480.0, 4447.0], [482.0, 4438.0], [481.0, 3783.0], [486.0, 4433.0], [485.0, 4431.0], [484.0, 4435.0], [510.0, 4378.0], [511.0, 4372.0], [509.0, 4381.0], [508.0, 4384.0], [507.0, 3733.0], [506.0, 4388.0], [505.0, 3733.0], [504.0, 3735.0], [503.0, 3733.0], [497.0, 3736.0], [496.0, 3736.0], [499.0, 3734.0], [498.0, 3734.0], [502.0, 3734.0], [501.0, 4394.0], [500.0, 4398.0], [540.0, 3739.0], [528.0, 4324.0], [532.0, 4274.0], [542.0, 4096.0], [538.0, 4103.0], [536.0, 4105.0], [512.0, 4370.0], [514.0, 4363.0], [516.0, 4358.0], [518.0, 4355.0], [526.0, 3709.0], [524.0, 4339.0], [522.0, 4343.0], [520.0, 4351.0], [534.0, 4150.0], [572.0, 4034.0], [562.0, 4044.0], [564.0, 3725.0], [574.0, 3720.0], [570.0, 4038.0], [568.0, 3722.0], [546.0, 4089.0], [548.0, 4089.0], [550.0, 4084.0], [558.0, 4057.0], [556.0, 4073.0], [554.0, 3899.0], [552.0, 4074.0], [566.0, 3724.0], [604.0, 3682.0], [592.0, 4485.0], [594.0, 4479.0], [596.0, 4476.0], [606.0, 4465.0], [602.0, 4468.0], [600.0, 4469.0], [576.0, 4022.0], [578.0, 3715.0], [580.0, 4011.0], [582.0, 4006.0], [590.0, 3989.0], [588.0, 3991.0], [586.0, 3706.0], [584.0, 4000.0], [598.0, 3688.0], [636.0, 3679.0], [624.0, 3899.0], [626.0, 3894.0], [628.0, 3891.0], [638.0, 4356.0], [634.0, 4382.0], [632.0, 4385.0], [608.0, 4454.0], [610.0, 4452.0], [612.0, 3667.0], [614.0, 4442.0], [622.0, 3906.0], [620.0, 3652.0], [618.0, 3922.0], [616.0, 3658.0], [630.0, 3887.0], [664.0, 3806.0], [670.0, 3792.0], [658.0, 3816.0], [666.0, 3802.5], [640.0, 4351.0], [642.0, 4356.0], [644.0, 4344.0], [646.0, 4344.0], [654.0, 3822.0], [652.0, 3825.0], [650.0, 3830.0], [648.0, 4337.0], [662.0, 3811.0], [660.0, 3812.0], [700.0, 3699.0], [702.0, 3694.0], [688.0, 3739.0], [690.0, 3682.0], [692.0, 3730.0], [696.0, 3712.0], [678.0, 3774.0], [676.0, 3689.0], [674.0, 3781.0], [672.0, 3787.0], [686.0, 3742.0], [684.0, 3751.5], [682.0, 3759.0], [680.0, 3767.0], [694.0, 3678.0], [730.0, 4275.0], [734.0, 4259.0], [720.0, 4288.0], [722.0, 4287.0], [724.0, 4283.0], [732.0, 4272.0], [728.0, 4274.0], [710.0, 3683.0], [708.0, 3684.0], [706.0, 3691.0], [704.0, 3691.0], [718.0, 4798.0], [716.0, 3674.0], [714.0, 3677.0], [712.0, 3679.0], [726.0, 3667.0], [764.0, 3623.0], [752.0, 4732.0], [754.0, 4732.0], [766.0, 4694.0], [762.0, 3626.0], [760.0, 3631.0], [738.0, 4246.0], [740.0, 3650.0], [742.0, 3651.0], [750.0, 3647.0], [748.0, 4228.0], [746.0, 4235.0], [744.0, 4233.0], [758.0, 3638.0], [796.0, 4108.0], [784.0, 4152.0], [786.0, 3603.0], [788.0, 4134.0], [798.0, 4103.0], [794.0, 4115.0], [792.0, 3584.0], [768.0, 4686.0], [770.0, 4686.0], [772.0, 3615.0], [774.0, 4671.0], [782.0, 4122.0], [780.0, 4667.0], [778.0, 3610.0], [776.0, 4162.0], [790.0, 4643.0], [828.0, 3516.0], [816.0, 4001.0], [818.0, 4041.0], [820.0, 3993.0], [830.0, 3964.0], [826.0, 3961.0], [824.0, 3975.0], [800.0, 4067.0], [802.0, 4059.0], [804.0, 4056.0], [806.0, 4046.0], [814.0, 4011.0], [812.0, 4029.0], [810.0, 4036.0], [808.0, 4039.0], [822.0, 3983.0], [860.0, 3477.5], [862.0, 3879.0], [848.0, 3909.0], [850.0, 3908.0], [852.0, 3991.0], [858.0, 3478.0], [856.0, 3483.0], [838.0, 4010.0], [836.0, 3941.0], [834.0, 3951.0], [832.0, 3510.0], [846.0, 3999.0], [844.0, 3922.0], [842.0, 3499.0], [840.0, 4010.0], [854.0, 3893.0], [892.0, 3787.0], [880.0, 3841.0], [882.0, 3834.0], [884.0, 3456.0], [894.0, 3781.0], [890.0, 3830.0], [888.0, 3808.0], [868.0, 3469.0], [870.0, 3862.0], [878.0, 3456.0], [876.0, 3652.5], [874.0, 3458.0], [872.0, 3461.0], [886.0, 3814.0], [924.0, 4194.0], [912.0, 4224.0], [914.0, 3718.0], [916.0, 3707.0], [926.0, 4194.0], [922.0, 4201.0], [920.0, 3699.0], [896.0, 3778.0], [898.0, 3767.0], [900.0, 3423.0], [902.0, 3427.0], [910.0, 3730.0], [908.0, 3737.0], [906.0, 3743.0], [904.0, 3754.0], [918.0, 3401.0], [956.0, 3596.0], [944.0, 4171.0], [946.0, 4161.0], [948.0, 3901.5], [958.0, 3588.0], [954.0, 4138.0], [952.0, 3596.0], [928.0, 4191.0], [930.0, 4187.0], [932.0, 4174.0], [934.0, 4182.0], [942.0, 4171.0], [940.0, 4168.0], [938.0, 4174.0], [936.0, 4181.0], [950.0, 4162.0], [988.0, 4333.0], [976.0, 4097.0], [978.0, 3562.0], [980.0, 4082.0], [990.0, 4483.0], [986.0, 4060.0], [984.0, 4063.0], [960.0, 3621.0], [962.0, 3618.0], [964.0, 3614.0], [966.0, 3581.0], [974.0, 4104.0], [972.0, 4109.0], [970.0, 4106.0], [968.0, 3604.0], [982.0, 4063.0], [1020.0, 3526.0], [1022.0, 4435.0], [1008.0, 4257.0], [1010.0, 4047.0], [1012.0, 4287.0], [1016.0, 3800.0], [998.0, 4053.0], [996.0, 4067.0], [994.0, 3549.0], [992.0, 4290.0], [1006.0, 4055.0], [1004.0, 4273.0], [1002.0, 4464.0], [1000.0, 4057.0], [1014.0, 4041.0], [1080.0, 4368.0], [1056.0, 3986.0], [1060.0, 4185.0], [1064.0, 4185.0], [1084.0, 4153.0], [1076.0, 3923.0], [1072.0, 4282.5], [1024.0, 4245.0], [1028.0, 4238.0], [1032.0, 4261.0], [1036.0, 4249.0], [1052.0, 4208.0], [1048.0, 4402.0], [1044.0, 4206.0], [1040.0, 4233.5], [1068.0, 3684.0], [1144.0, 4061.0], [1140.0, 4240.0], [1148.0, 4054.0], [1120.0, 4310.0], [1124.0, 3561.0], [1128.0, 4278.0], [1132.0, 4084.0], [1136.0, 3422.0], [1088.0, 4128.0], [1092.0, 4361.0], [1096.0, 4146.0], [1100.0, 4324.0], [1116.0, 3442.0], [1112.0, 3747.0], [1108.0, 4293.0], [1104.0, 3444.0], [1208.0, 4147.0], [1204.0, 3978.0], [1212.0, 3457.0], [1184.0, 3852.0], [1188.0, 4001.0], [1192.0, 4193.0], [1196.0, 3420.0], [1200.0, 3413.0], [1152.0, 3414.0], [1160.0, 4137.0], [1164.0, 4232.0], [1176.0, 3994.0], [1172.0, 3403.0], [1168.0, 4003.0], [1272.0, 4037.0], [1268.0, 3307.0], [1276.0, 3831.0], [1248.0, 3336.0], [1252.0, 3322.0], [1256.0, 3369.0], [1260.0, 3433.0], [1228.0, 3912.0], [1224.0, 3428.0], [1220.0, 3438.0], [1216.0, 3894.0], [1244.0, 3862.0], [1240.0, 3892.0], [1236.0, 4083.0], [1232.0, 4100.0], [1336.0, 3705.0], [1332.0, 3566.0], [1340.0, 3199.0], [1312.0, 3268.0], [1316.0, 3792.0], [1324.0, 3910.0], [1328.0, 3781.0], [1280.0, 3844.0], [1284.0, 3993.0], [1288.0, 3294.0], [1292.0, 3769.0], [1308.0, 3749.0], [1304.0, 3288.0], [1300.0, 3680.0], [1296.0, 3770.0], [1400.0, 3583.0], [1396.0, 3193.0], [1404.0, 3129.0], [1376.0, 3789.0], [1380.0, 3798.0], [1384.0, 3791.0], [1388.0, 3151.0], [1392.0, 3519.0], [1344.0, 3195.0], [1348.0, 3735.0], [1352.0, 3865.0], [1372.0, 3658.0], [1368.0, 3662.0], [1364.0, 3708.5], [1360.0, 3734.0], [1464.0, 3482.0], [1468.0, 3539.0], [1440.0, 3220.0], [1444.0, 3694.0], [1448.0, 3524.0], [1452.0, 3513.0], [1460.0, 3532.0], [1456.0, 3527.0], [1416.0, 3054.0], [1412.0, 3352.0], [1408.0, 3615.0], [1436.0, 3118.0], [1432.0, 3077.0], [1532.0, 3128.5], [1528.0, 2919.0], [1504.0, 3377.0], [1508.0, 3519.0], [1512.0, 3383.5], [1516.0, 2943.0], [1524.0, 3374.0], [1520.0, 3390.0], [1472.0, 3465.0], [1476.0, 3564.0], [1480.0, 3449.0], [1484.0, 3493.0], [1496.0, 3435.0], [1492.0, 3401.0], [1488.0, 3058.0], [1592.0, 3206.0], [1596.0, 2834.0], [1568.0, 2941.0], [1576.0, 3330.5], [1580.0, 3046.0], [1588.0, 2865.0], [1584.0, 3308.0], [1548.0, 2859.0], [1540.0, 3353.0], [1564.0, 3080.0], [1560.0, 2803.0], [1556.0, 3429.0], [1552.0, 3300.0], [1656.0, 2550.5], [1660.0, 2787.0], [1632.0, 3081.0], [1636.0, 2652.0], [1640.0, 3074.0], [1644.0, 2815.0], [1652.0, 2604.0], [1648.0, 2810.0], [1600.0, 2722.0], [1604.0, 2813.0], [1608.0, 2802.0], [1612.0, 2944.0], [1624.0, 2996.0], [1620.0, 2915.0], [1616.0, 3284.0], [1716.0, 2718.0], [1724.0, 2352.0], [1696.0, 2635.0], [1704.0, 2921.0], [1708.0, 2463.0], [1712.0, 2572.0], [1676.0, 2765.0], [1672.0, 2718.0], [1668.0, 2515.0], [1664.0, 2923.0], [1692.0, 2545.0], [1688.0, 2892.0], [1680.0, 2714.0], [1784.0, 2353.0], [1788.0, 2671.0], [1760.0, 2580.0], [1768.0, 2395.0], [1772.0, 2713.0], [1780.0, 2162.0], [1776.0, 2171.0], [1740.0, 2763.0], [1736.0, 2777.0], [1732.0, 2528.0], [1756.0, 2428.0], [1752.0, 2441.0], [1748.0, 2733.0], [1744.0, 2481.0], [1848.0, 2442.0], [1844.0, 2396.0], [1852.0, 2121.0], [1824.0, 2319.0], [1828.0, 2002.0], [1832.0, 2037.0], [1836.0, 2450.0], [1840.0, 2401.0], [1792.0, 2670.0], [1796.0, 2616.0], [1800.0, 2104.0], [1820.0, 2195.0], [1808.0, 2106.0], [1868.0, 1934.0], [1892.0, 1728.6], [1896.0, 2223.0], [1900.0, 1859.0], [1888.0, 1876.0], [1864.0, 1941.375], [1856.0, 2353.0], [1860.0, 1954.6666666666667], [1884.0, 2089.0], [1880.0, 1911.0], [1876.0, 1980.0], [1872.0, 1931.0], [1077.0, 3463.0], [1085.0, 3633.0], [1057.0, 3982.0], [1061.0, 3983.0], [1081.0, 4172.0], [1073.0, 4193.0], [1033.0, 4015.0], [1025.0, 3979.0], [1053.0, 4423.0], [1049.0, 4397.0], [1045.0, 4207.0], [1041.0, 4247.0], [1065.0, 3663.0], [1145.0, 4102.0], [1149.0, 4102.0], [1121.0, 4310.0], [1125.0, 4101.0], [1129.0, 3610.0], [1133.0, 4284.0], [1141.0, 4258.0], [1137.0, 4098.0], [1089.0, 3454.0], [1093.0, 3705.0], [1097.0, 4340.0], [1101.0, 3440.0], [1117.0, 4107.0], [1113.0, 4178.0], [1109.0, 4302.0], [1105.0, 3588.0], [1209.0, 3937.0], [1213.0, 3517.0], [1185.0, 3985.0], [1189.0, 3425.0], [1193.0, 3424.0], [1197.0, 3963.0], [1205.0, 3948.0], [1201.0, 3409.0], [1153.0, 3412.0], [1157.0, 3869.5], [1161.0, 4012.0], [1165.0, 3407.0], [1181.0, 4112.0], [1177.0, 4024.0], [1173.0, 3402.0], [1169.0, 4035.0], [1273.0, 4034.0], [1277.0, 3326.0], [1249.0, 3335.0], [1253.0, 3322.0], [1257.0, 3862.0], [1261.0, 3886.0], [1269.0, 3842.0], [1265.0, 3315.5], [1229.0, 3883.0], [1225.0, 3916.0], [1221.0, 3436.0], [1217.0, 3930.0], [1245.0, 3334.0], [1241.0, 3350.0], [1237.0, 3902.0], [1233.0, 3887.5], [1337.0, 3921.0], [1341.0, 3725.0], [1313.0, 3268.0], [1317.0, 3935.0], [1321.0, 3608.5], [1325.0, 3760.0], [1333.0, 3748.0], [1329.0, 3941.0], [1281.0, 3881.0], [1285.0, 3967.0], [1289.0, 3863.0], [1293.0, 3994.0], [1309.0, 3751.0], [1305.0, 3293.0], [1301.0, 3808.0], [1297.0, 3840.0], [1401.0, 3627.0], [1405.0, 3598.0], [1377.0, 3619.0], [1381.0, 3635.0], [1385.0, 3784.0], [1389.0, 3666.0], [1397.0, 3589.0], [1393.0, 3108.0], [1345.0, 3720.0], [1349.0, 3220.0], [1353.0, 3855.0], [1357.0, 3846.5], [1373.0, 3656.0], [1365.0, 3642.0], [1361.0, 3668.0], [1465.0, 3501.0], [1469.0, 3632.0], [1441.0, 3034.0], [1445.0, 3690.0], [1449.0, 3691.0], [1453.0, 3657.0], [1461.0, 3504.0], [1457.0, 3570.0], [1421.0, 3111.0], [1413.0, 3149.0], [1409.0, 3609.0], [1429.0, 3118.0], [1425.0, 3078.0], [1529.0, 3386.0], [1533.0, 3109.0], [1505.0, 3527.0], [1509.0, 2860.0], [1513.0, 2960.0], [1517.0, 2938.0], [1525.0, 3369.0], [1521.0, 3352.0], [1473.0, 3461.0], [1477.0, 3271.0], [1481.0, 3588.0], [1485.0, 3425.0], [1501.0, 3486.0], [1497.0, 3404.0], [1493.0, 3418.0], [1489.0, 3455.0], [1597.0, 2715.0], [1569.0, 3246.0], [1573.0, 3009.5], [1577.0, 3288.0], [1581.0, 3345.0], [1593.0, 2851.0], [1589.0, 3345.0], [1585.0, 3223.0], [1549.0, 3323.0], [1545.0, 3235.5], [1541.0, 3311.0], [1537.0, 3410.5], [1565.0, 3270.0], [1561.0, 2798.0], [1557.0, 3329.0], [1553.0, 2839.0], [1661.0, 2865.0], [1633.0, 2661.0], [1637.0, 3136.0], [1641.0, 2925.0], [1645.0, 2615.0], [1657.0, 3131.0], [1653.0, 2586.0], [1601.0, 3186.0], [1609.0, 3200.0], [1613.0, 2941.0], [1629.0, 3074.0], [1625.0, 2898.0], [1621.0, 3167.0], [1617.0, 3268.0], [1725.0, 2809.0], [1697.0, 2517.0], [1701.0, 2680.5], [1705.0, 2338.0], [1709.0, 2476.0], [1721.0, 2410.5], [1717.0, 2565.0], [1713.0, 2584.0], [1677.0, 2987.0], [1673.0, 2568.0], [1669.0, 2509.0], [1665.0, 2576.0], [1693.0, 2629.0], [1689.0, 2899.0], [1685.0, 2618.5], [1681.0, 2628.0], [1789.0, 2506.0], [1761.0, 2408.0], [1765.0, 2202.0], [1769.0, 2394.0], [1773.0, 2175.0], [1785.0, 2399.0], [1781.0, 2159.0], [1777.0, 2415.0], [1741.0, 2502.0], [1737.0, 2514.0], [1733.0, 2321.0], [1729.0, 2536.0], [1757.0, 2442.0], [1753.0, 2204.0], [1749.0, 2458.0], [1745.0, 2473.0], [1849.0, 1972.0], [1853.0, 2381.0], [1825.0, 2324.0], [1829.0, 2190.0], [1833.0, 1997.0], [1837.0, 2017.0], [1845.0, 1994.0], [1841.0, 2141.0], [1793.0, 2353.0], [1797.0, 2591.0], [1801.0, 2613.0], [1805.0, 2117.5], [1821.0, 2200.0], [1817.0, 2100.0], [1813.0, 2122.3333333333335], [1809.0, 2285.0], [1869.0, 2371.0], [1861.0, 1622.0833333333335], [1897.0, 1732.0], [1901.0, 1906.0], [1889.0, 2028.5], [1865.0, 1940.0], [1893.0, 2037.0], [1885.0, 1808.0], [1881.0, 2318.0], [1877.0, 2008.5], [1873.0, 2015.0], [541.0, 3736.0], [543.0, 4094.0], [531.0, 4312.5], [529.0, 3704.0], [533.0, 4677.0], [539.0, 4106.0], [537.0, 4106.0], [527.0, 4327.0], [513.0, 4369.0], [515.0, 3717.0], [517.0, 4358.0], [519.0, 4353.0], [525.0, 4331.0], [523.0, 4342.0], [521.0, 4347.0], [535.0, 4115.0], [573.0, 4028.0], [575.0, 4024.0], [561.0, 4050.5], [563.0, 3723.0], [565.0, 3719.0], [571.0, 4040.0], [569.0, 4035.0], [559.0, 4054.0], [545.0, 4096.0], [547.0, 4100.0], [549.0, 3742.0], [551.0, 4082.0], [557.0, 4073.0], [555.0, 4059.0], [567.0, 4042.0], [605.0, 4465.0], [607.0, 3954.0], [593.0, 3697.0], [595.0, 3695.0], [597.0, 3691.0], [603.0, 4470.0], [601.0, 4471.0], [591.0, 3698.0], [577.0, 3715.0], [579.0, 3714.0], [581.0, 4008.0], [583.0, 4003.0], [589.0, 3988.0], [587.0, 3992.0], [585.0, 3998.0], [599.0, 3688.0], [637.0, 4371.0], [639.0, 4362.0], [625.0, 3899.0], [627.0, 3894.0], [629.0, 3886.0], [635.0, 4386.0], [633.0, 4386.0], [623.0, 3707.0], [609.0, 3671.0], [611.0, 3669.0], [613.0, 3942.0], [615.0, 3661.0], [621.0, 3916.0], [619.0, 3919.0], [617.0, 3930.0], [631.0, 3690.0], [669.0, 3793.5], [671.0, 3791.0], [657.0, 3817.5], [659.0, 3814.0], [667.0, 3684.0], [655.0, 3820.0], [641.0, 4350.0], [643.0, 4358.0], [645.0, 3837.0], [647.0, 4342.0], [653.0, 3639.0], [651.0, 3828.0], [649.0, 3653.0], [663.0, 3808.0], [661.0, 3643.0], [699.0, 3706.0], [697.0, 3722.0], [703.0, 3695.0], [689.0, 3736.0], [691.0, 3731.0], [693.0, 3677.0], [701.0, 3697.0], [679.0, 3770.0], [677.0, 3772.0], [675.0, 3778.0], [673.0, 3785.0], [687.0, 3740.0], [685.0, 3744.0], [681.0, 3762.0], [695.0, 3713.0], [733.0, 4264.0], [735.0, 3651.0], [721.0, 4288.0], [723.0, 4281.0], [725.0, 4279.0], [731.0, 4273.0], [711.0, 3681.0], [709.0, 3683.0], [707.0, 3668.0], [705.0, 3691.0], [719.0, 4298.0], [717.0, 4298.0], [715.0, 3674.0], [713.0, 3680.0], [727.0, 4279.0], [765.0, 4702.0], [767.0, 4685.0], [753.0, 3644.0], [757.0, 4724.0], [755.0, 4723.0], [763.0, 3638.0], [761.0, 3628.0], [751.0, 4224.0], [737.0, 4249.5], [739.0, 3648.0], [741.0, 3654.0], [743.0, 3652.0], [749.0, 4226.0], [747.0, 4237.0], [745.0, 3651.0], [759.0, 3634.0], [797.0, 3571.0], [799.0, 3569.0], [785.0, 3605.0], [787.0, 4134.0], [789.0, 4644.0], [795.0, 4111.0], [793.0, 4117.0], [783.0, 4670.0], [771.0, 4686.0], [773.0, 3613.0], [775.0, 4165.0], [781.0, 3606.0], [779.0, 4671.0], [777.0, 4164.0], [791.0, 4123.0], [829.0, 3515.0], [831.0, 3957.0], [817.0, 3997.0], [819.0, 3992.0], [821.0, 3989.0], [827.0, 3955.0], [825.0, 3964.0], [815.0, 4005.0], [801.0, 4063.0], [803.0, 4057.0], [805.0, 4066.0], [807.0, 4047.0], [811.0, 4034.0], [809.0, 4040.0], [823.0, 3981.0], [857.0, 3480.0], [863.0, 3878.0], [849.0, 3910.0], [851.0, 3901.0], [853.0, 3895.0], [861.0, 3882.0], [839.0, 3933.0], [837.0, 3943.0], [835.0, 3942.0], [833.0, 3947.0], [847.0, 3903.0], [845.0, 3915.0], [841.0, 4006.0], [855.0, 3988.0], [893.0, 3786.0], [895.0, 3780.0], [881.0, 3839.0], [883.0, 3829.0], [885.0, 3446.0], [891.0, 3797.0], [889.0, 3805.0], [879.0, 3454.0], [867.0, 3671.5], [865.0, 3875.0], [869.0, 3862.0], [871.0, 3858.0], [877.0, 3456.0], [873.0, 3458.0], [887.0, 3814.0], [925.0, 4197.0], [927.0, 4181.0], [913.0, 4224.0], [915.0, 3405.0], [917.0, 3705.0], [923.0, 4196.0], [921.0, 3696.0], [911.0, 3727.0], [897.0, 3774.0], [899.0, 3435.0], [901.0, 3426.0], [903.0, 3755.0], [909.0, 4233.0], [907.0, 3737.0], [905.0, 3748.0], [919.0, 3703.0], [957.0, 3593.0], [959.0, 3623.0], [945.0, 4163.0], [949.0, 3650.0], [955.0, 3636.0], [953.0, 3596.0], [943.0, 4162.0], [929.0, 4189.0], [931.0, 4187.0], [933.0, 4175.0], [935.0, 4171.0], [941.0, 4163.0], [939.0, 3604.0], [937.0, 4176.0], [951.0, 3647.0], [989.0, 4494.0], [991.0, 4486.0], [977.0, 4090.0], [979.0, 4090.0], [981.0, 4064.0], [987.0, 4060.0], [985.0, 4062.0], [975.0, 3569.0], [961.0, 3621.0], [963.0, 3579.0], [965.0, 3610.0], [967.0, 3581.0], [973.0, 4105.0], [971.0, 4108.0], [969.0, 3600.0], [983.0, 4060.0], [1019.0, 4280.0], [1017.0, 4249.0], [1023.0, 4429.0], [1009.0, 4051.0], [1011.0, 4045.0], [1013.0, 4253.0], [1021.0, 3525.0], [999.0, 4062.0], [997.0, 4055.0], [995.0, 4068.0], [993.0, 4509.0], [1007.0, 4053.0], [1005.0, 4056.0], [1003.0, 4464.0], [1001.0, 4060.0], [1015.0, 4460.0], [1082.0, 4205.0], [1086.0, 4168.0], [1058.0, 3704.0], [1062.0, 3697.0], [1066.0, 4172.0], [1078.0, 4365.0], [1074.0, 4164.0], [1054.0, 3713.0], [1026.0, 3519.0], [1030.0, 3770.0], [1034.0, 3508.0], [1038.0, 4332.0], [1050.0, 4254.0], [1046.0, 4006.0], [1042.0, 4268.0], [1070.0, 3564.5], [1150.0, 4092.0], [1122.0, 4273.0], [1126.0, 3647.0], [1134.0, 3420.0], [1146.0, 4258.0], [1142.0, 4111.0], [1138.0, 4071.0], [1090.0, 3621.0], [1094.0, 3448.0], [1098.0, 4339.0], [1102.0, 3439.0], [1118.0, 4313.0], [1114.0, 3932.0], [1110.0, 4182.0], [1106.0, 4127.0], [1214.0, 4154.0], [1186.0, 3973.0], [1190.0, 4068.0], [1194.0, 3422.0], [1198.0, 3444.0], [1210.0, 3909.0], [1206.0, 3984.0], [1202.0, 3954.0], [1154.0, 3413.0], [1158.0, 3514.0], [1162.0, 3408.0], [1166.0, 3406.0], [1178.0, 3987.0], [1174.0, 3401.0], [1170.0, 3404.0], [1278.0, 3391.0], [1250.0, 3875.0], [1254.0, 3323.0], [1258.0, 4054.0], [1262.0, 3317.0], [1274.0, 4036.0], [1270.0, 3838.0], [1266.0, 3836.0], [1230.0, 3891.0], [1226.0, 3885.0], [1222.0, 3888.0], [1218.0, 3931.0], [1242.0, 3877.0], [1238.0, 3343.0], [1234.0, 3861.0], [1342.0, 3193.0], [1314.0, 3762.0], [1318.0, 3735.0], [1322.0, 3757.0], [1326.0, 3780.0], [1338.0, 3739.0], [1334.0, 3748.0], [1330.0, 3927.0], [1282.0, 3875.0], [1286.0, 3866.0], [1290.0, 3356.0], [1294.0, 3822.0], [1310.0, 3739.0], [1306.0, 3310.0], [1302.0, 3759.0], [1298.0, 3783.0], [1406.0, 3586.0], [1378.0, 3817.0], [1382.0, 3800.0], [1386.0, 3156.0], [1390.0, 3253.0], [1402.0, 3756.0], [1398.0, 3748.0], [1394.0, 3776.0], [1346.0, 3720.0], [1350.0, 3217.0], [1354.0, 3163.0], [1358.0, 3840.0], [1374.0, 3806.0], [1370.0, 3382.5], [1366.0, 3661.0], [1362.0, 3721.0], [1470.0, 3488.0], [1442.0, 3575.0], [1446.0, 3681.0], [1450.0, 3545.0], [1454.0, 3674.0], [1466.0, 3635.0], [1462.0, 3659.0], [1422.0, 3114.0], [1414.0, 3654.0], [1410.0, 3607.0], [1438.0, 3378.5], [1434.0, 3171.5], [1430.0, 3073.0], [1426.0, 3093.0], [1530.0, 2944.0], [1522.0, 3495.0], [1506.0, 3410.0], [1510.0, 3408.0], [1514.0, 2945.0], [1518.0, 2940.0], [1534.0, 3348.0], [1474.0, 3481.0], [1478.0, 2980.0], [1482.0, 3076.0], [1486.0, 3522.0], [1502.0, 3539.0], [1498.0, 3431.0], [1494.0, 3551.0], [1490.0, 3452.0], [1598.0, 3221.0], [1570.0, 2932.0], [1574.0, 3292.0], [1578.0, 2769.0], [1582.0, 3234.0], [1590.0, 3210.0], [1586.0, 3017.0], [1550.0, 2858.0], [1542.0, 3416.0], [1538.0, 3324.0], [1566.0, 2793.0], [1562.0, 2773.0], [1558.0, 3332.0], [1554.0, 3284.0], [1662.0, 2760.0], [1634.0, 2672.0], [1638.0, 2641.0], [1642.0, 3068.0], [1646.0, 2543.0], [1658.0, 2880.0], [1654.0, 2584.0], [1650.0, 2706.5], [1602.0, 2817.0], [1606.0, 3005.0], [1610.0, 3194.0], [1630.0, 3093.0], [1626.0, 2663.0], [1622.0, 2722.0], [1618.0, 3158.0], [1726.0, 2344.0], [1698.0, 2515.0], [1702.0, 2865.0], [1706.0, 2633.0], [1710.0, 2937.0], [1722.0, 2454.0], [1718.0, 2310.0], [1714.0, 2444.0], [1678.0, 2806.0], [1674.0, 2715.0], [1670.0, 3070.0], [1666.0, 2742.0], [1694.0, 2929.0], [1690.0, 2543.0], [1686.0, 3027.0], [1682.0, 2625.0], [1790.0, 2133.0], [1762.0, 2505.0], [1766.0, 2543.0], [1770.0, 2191.0], [1774.0, 2253.0], [1782.0, 2229.0], [1778.0, 2470.0], [1742.0, 2491.0], [1738.0, 2510.0], [1734.0, 2316.0], [1730.0, 2532.0], [1758.0, 2717.0], [1754.0, 2433.0], [1750.0, 2248.0], [1746.0, 2272.0], [1854.0, 2125.0], [1826.0, 2199.0], [1830.0, 2436.0], [1834.0, 2466.0], [1850.0, 1973.0], [1846.0, 2196.0], [1842.0, 1976.0], [1794.0, 2182.0], [1798.0, 2158.0], [1802.0, 2319.0], [1806.0, 2130.0], [1822.0, 2478.0], [1818.0, 2209.0], [1814.0, 2479.0], [1810.0, 2078.0], [1890.0, 1880.0], [1898.0, 2158.0], [1902.0, 1904.0], [1894.0, 1648.25], [1870.0, 2009.0], [1866.0, 1868.0], [1862.0, 1953.8333333333333], [1858.0, 2206.5], [1886.0, 2020.0], [1882.0, 2342.0], [1878.0, 2148.0], [1874.0, 1795.0], [1083.0, 4354.0], [1087.0, 3840.0], [1059.0, 3991.0], [1063.0, 3696.0], [1079.0, 4363.0], [1035.0, 3509.0], [1031.0, 3515.0], [1027.0, 4428.0], [1055.0, 3989.0], [1051.0, 3722.0], [1047.0, 4294.0], [1043.0, 4263.0], [1067.0, 4182.0], [1147.0, 3420.0], [1151.0, 4239.0], [1123.0, 4100.0], [1127.0, 4149.0], [1131.0, 3558.0], [1135.0, 4074.0], [1143.0, 3423.0], [1139.0, 3575.0], [1119.0, 4140.0], [1091.0, 3618.0], [1095.0, 4173.0], [1099.0, 4139.0], [1103.0, 3786.0], [1115.0, 4149.0], [1111.0, 3443.0], [1107.0, 4324.0], [1211.0, 3392.0], [1215.0, 3926.0], [1187.0, 3399.0], [1191.0, 3425.0], [1195.0, 3422.0], [1199.0, 3414.0], [1207.0, 3530.0], [1203.0, 3406.0], [1183.0, 4028.5], [1155.0, 3412.0], [1159.0, 4022.0], [1163.0, 3409.0], [1167.0, 4037.0], [1179.0, 4050.0], [1175.0, 3471.0], [1171.0, 4198.0], [1275.0, 3827.0], [1279.0, 4016.0], [1251.0, 3322.0], [1255.0, 3883.0], [1259.0, 3340.0], [1263.0, 3930.0], [1271.0, 3293.0], [1267.0, 3829.0], [1227.0, 3908.0], [1223.0, 3887.0], [1247.0, 3734.5], [1239.0, 3336.0], [1235.0, 3854.0], [1339.0, 3924.0], [1343.0, 3886.0], [1315.0, 3794.0], [1319.0, 3265.0], [1323.0, 3793.0], [1327.0, 3920.0], [1335.0, 3905.0], [1331.0, 3714.0], [1311.0, 3812.0], [1283.0, 3871.0], [1287.0, 3831.0], [1291.0, 3853.0], [1295.0, 3993.0], [1307.0, 3291.0], [1303.0, 3944.0], [1299.0, 3760.0], [1403.0, 3592.0], [1407.0, 3591.0], [1379.0, 3672.0], [1383.0, 3789.0], [1387.0, 3772.0], [1399.0, 3386.0], [1395.0, 3101.0], [1375.0, 3806.0], [1347.0, 3883.0], [1351.0, 3180.0], [1355.0, 3706.0], [1359.0, 3829.0], [1371.0, 3196.0], [1367.0, 3714.0], [1467.0, 3497.0], [1471.0, 3629.0], [1443.0, 3567.0], [1447.0, 3678.0], [1451.0, 3661.0], [1455.0, 3527.0], [1463.0, 3594.0], [1459.0, 3674.0], [1423.0, 3107.0], [1419.0, 3559.0], [1415.0, 3118.0], [1411.0, 3610.0], [1435.0, 3091.0], [1431.0, 3070.0], [1527.0, 3317.5], [1535.0, 3352.0], [1507.0, 3398.0], [1515.0, 2942.0], [1519.0, 3189.0], [1523.0, 3372.0], [1503.0, 3428.0], [1475.0, 3466.0], [1479.0, 2978.0], [1487.0, 3363.0], [1499.0, 3432.0], [1495.0, 3411.0], [1491.0, 3452.0], [1595.0, 3198.5], [1587.0, 3155.0], [1599.0, 2827.0], [1571.0, 3389.0], [1579.0, 3177.0], [1583.0, 3233.0], [1591.0, 3212.0], [1551.0, 3064.0], [1547.0, 3096.5], [1543.0, 3460.0], [1539.0, 3333.0], [1567.0, 2941.0], [1563.0, 3315.0], [1559.0, 2804.0], [1555.0, 3287.0], [1659.0, 2560.0], [1651.0, 2832.0], [1663.0, 3020.0], [1635.0, 2655.0], [1639.0, 2635.0], [1643.0, 3113.0], [1647.0, 3056.0], [1631.0, 3210.0], [1603.0, 3188.0], [1607.0, 3199.0], [1611.0, 3191.0], [1615.0, 3058.5], [1627.0, 2871.0], [1623.0, 3149.0], [1619.0, 2683.0], [1723.0, 2449.0], [1715.0, 2893.0], [1727.0, 2564.0], [1699.0, 2468.0], [1703.0, 2500.0], [1707.0, 2489.0], [1711.0, 2320.0], [1719.0, 2364.0], [1679.0, 2718.0], [1675.0, 2559.0], [1671.0, 2831.0], [1667.0, 2518.0], [1695.0, 2522.0], [1691.0, 2877.0], [1687.0, 2888.0], [1683.0, 2620.0], [1787.0, 2429.5], [1779.0, 2392.0], [1791.0, 2641.0], [1763.0, 2188.0], [1767.0, 2703.0], [1771.0, 2187.0], [1775.0, 2253.0], [1783.0, 2722.0], [1743.0, 2764.0], [1739.0, 2841.0], [1735.0, 2520.0], [1731.0, 2326.0], [1759.0, 2424.0], [1755.0, 2211.0], [1751.0, 2719.0], [1747.0, 2767.0], [1851.0, 2109.0], [1855.0, 2118.0], [1827.0, 2001.0], [1831.0, 2038.0], [1835.0, 2426.0], [1839.0, 2016.0], [1847.0, 1981.0], [1843.0, 2206.0], [1823.0, 2273.0], [1795.0, 2590.0], [1799.0, 2620.0], [1803.0, 2297.0], [1807.0, 2117.0], [1819.0, 2008.0], [1815.0, 2541.0], [1891.0, 1797.875], [1895.0, 1707.6666666666667], [1899.0, 2275.0], [1903.0, 1897.0], [1871.0, 1889.0], [1867.0, 1905.5], [1863.0, 1943.0], [1887.0, 1870.0], [1859.0, 2163.0], [1883.0, 1868.0], [1879.0, 2146.4], [1875.0, 2132.5], [1.0, 3868.0]], "isOverall": false, "label": "HTTP Request", "isController": false}, {"data": [[996.9049999999996, 3550.212000000002]], "isOverall": false, "label": "HTTP Request-Aggregated", "isController": false}], "supportsControllersDiscrimination": true, "maxX": 1903.0, "title": "Time VS Threads"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    axisLabel: "Number of active threads",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response times in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: { noColumns: 2,show: true, container: '#legendTimeVsThreads' },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s: At %x.2 active threads, Average response time was %y.2 ms"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesTimeVsThreads"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotTimesVsThreads"), dataset, options);
            // setup overview
            $.plot($("#overviewTimesVsThreads"), dataset, prepareOverviewOptions(options));
        }
};

// Time vs threads
function refreshTimeVsThreads(){
    var infos = timeVsThreadsInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyTimeVsThreads");
        return;
    }
    if(isGraph($("#flotTimesVsThreads"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTimeVsThreads");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTimesVsThreads", "#overviewTimesVsThreads");
        $('#footerTimeVsThreads .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var bytesThroughputOverTimeInfos = {
        data : {"result": {"minY": 4633.333333333333, "minX": 1.61543178E12, "maxY": 6153.466666666666, "series": [{"data": [[1.61543178E12, 6153.466666666666]], "isOverall": false, "label": "Bytes received per second", "isController": false}, {"data": [[1.61543178E12, 4633.333333333333]], "isOverall": false, "label": "Bytes sent per second", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.61543178E12, "title": "Bytes Throughput Over Time"}},
        getOptions : function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity) ,
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Bytes / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendBytesThroughputOverTime'
                },
                selection: {
                    mode: "xy"
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y"
                }
            };
        },
        createGraph : function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesBytesThroughputOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotBytesThroughputOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewBytesThroughputOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Bytes throughput Over Time
function refreshBytesThroughputOverTime(fixTimestamps) {
    var infos = bytesThroughputOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotBytesThroughputOverTime"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesBytesThroughputOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotBytesThroughputOverTime", "#overviewBytesThroughputOverTime");
        $('#footerBytesThroughputOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var responseTimesOverTimeInfos = {
        data: {"result": {"minY": 3550.212000000002, "minX": 1.61543178E12, "maxY": 3550.212000000002, "series": [{"data": [[1.61543178E12, 3550.212000000002]], "isOverall": false, "label": "HTTP Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.61543178E12, "title": "Response Time Over Time"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average response time was %y ms"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Response Times Over Time
function refreshResponseTimeOverTime(fixTimestamps) {
    var infos = responseTimesOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimeOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotResponseTimesOverTime"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimesOverTime", "#overviewResponseTimesOverTime");
        $('#footerResponseTimesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var latenciesOverTimeInfos = {
        data: {"result": {"minY": 3549.9214999999945, "minX": 1.61543178E12, "maxY": 3549.9214999999945, "series": [{"data": [[1.61543178E12, 3549.9214999999945]], "isOverall": false, "label": "HTTP Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.61543178E12, "title": "Latencies Over Time"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response latencies in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendLatenciesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average latency was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesLatenciesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotLatenciesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewLatenciesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Latencies Over Time
function refreshLatenciesOverTime(fixTimestamps) {
    var infos = latenciesOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyLatenciesOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotLatenciesOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesLatenciesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotLatenciesOverTime", "#overviewLatenciesOverTime");
        $('#footerLatenciesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var connectTimeOverTimeInfos = {
        data: {"result": {"minY": 144.86749999999998, "minX": 1.61543178E12, "maxY": 144.86749999999998, "series": [{"data": [[1.61543178E12, 144.86749999999998]], "isOverall": false, "label": "HTTP Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.61543178E12, "title": "Connect Time Over Time"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getConnectTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average Connect Time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendConnectTimeOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average connect time was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesConnectTimeOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotConnectTimeOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewConnectTimeOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Connect Time Over Time
function refreshConnectTimeOverTime(fixTimestamps) {
    var infos = connectTimeOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyConnectTimeOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotConnectTimeOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesConnectTimeOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotConnectTimeOverTime", "#overviewConnectTimeOverTime");
        $('#footerConnectTimeOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var responseTimePercentilesOverTimeInfos = {
        data: {"result": {"minY": 1338.0, "minX": 1.61543178E12, "maxY": 5000.0, "series": [{"data": [[1.61543178E12, 5000.0]], "isOverall": false, "label": "Max", "isController": false}, {"data": [[1.61543178E12, 4313.9]], "isOverall": false, "label": "90th percentile", "isController": false}, {"data": [[1.61543178E12, 4670.99]], "isOverall": false, "label": "99th percentile", "isController": false}, {"data": [[1.61543178E12, 4424.9]], "isOverall": false, "label": "95th percentile", "isController": false}, {"data": [[1.61543178E12, 1338.0]], "isOverall": false, "label": "Min", "isController": false}, {"data": [[1.61543178E12, 3736.0]], "isOverall": false, "label": "Median", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.61543178E12, "title": "Response Time Percentiles Over Time (successful requests only)"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true,
                        fill: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Response Time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimePercentilesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Response time was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentilesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimePercentilesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimePercentilesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Response Time Percentiles Over Time
function refreshResponseTimePercentilesOverTime(fixTimestamps) {
    var infos = responseTimePercentilesOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotResponseTimePercentilesOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesResponseTimePercentilesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimePercentilesOverTime", "#overviewResponseTimePercentilesOverTime");
        $('#footerResponseTimePercentilesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var responseTimeVsRequestInfos = {
    data: {"result": {"minY": 1970.5, "minX": 188.0, "maxY": 4046.5, "series": [{"data": [[554.0, 3782.0], [548.0, 3897.5], [330.0, 2809.5], [188.0, 1970.5], [380.0, 4046.5]], "isOverall": false, "label": "Successes", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 1000, "maxX": 554.0, "title": "Response Time Vs Request"}},
    getOptions: function() {
        return {
            series: {
                lines: {
                    show: false
                },
                points: {
                    show: true
                }
            },
            xaxis: {
                axisLabel: "Global number of requests per second",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            yaxis: {
                axisLabel: "Median Response Time in ms",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            legend: {
                noColumns: 2,
                show: true,
                container: '#legendResponseTimeVsRequest'
            },
            selection: {
                mode: 'xy'
            },
            grid: {
                hoverable: true // IMPORTANT! this is needed for tooltip to work
            },
            tooltip: true,
            tooltipOpts: {
                content: "%s : Median response time at %x req/s was %y ms"
            },
            colors: ["#9ACD32", "#FF6347"]
        };
    },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesResponseTimeVsRequest"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotResponseTimeVsRequest"), dataset, options);
        // setup overview
        $.plot($("#overviewResponseTimeVsRequest"), dataset, prepareOverviewOptions(options));

    }
};

// Response Time vs Request
function refreshResponseTimeVsRequest() {
    var infos = responseTimeVsRequestInfos;
    prepareSeries(infos.data);
    if (isGraph($("#flotResponseTimeVsRequest"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimeVsRequest");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimeVsRequest", "#overviewResponseTimeVsRequest");
        $('#footerResponseRimeVsRequest .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var latenciesVsRequestInfos = {
    data: {"result": {"minY": 1970.5, "minX": 188.0, "maxY": 4046.5, "series": [{"data": [[554.0, 3782.0], [548.0, 3897.5], [330.0, 2809.5], [188.0, 1970.5], [380.0, 4046.5]], "isOverall": false, "label": "Successes", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 1000, "maxX": 554.0, "title": "Latencies Vs Request"}},
    getOptions: function() {
        return{
            series: {
                lines: {
                    show: false
                },
                points: {
                    show: true
                }
            },
            xaxis: {
                axisLabel: "Global number of requests per second",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            yaxis: {
                axisLabel: "Median Latency in ms",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            legend: { noColumns: 2,show: true, container: '#legendLatencyVsRequest' },
            selection: {
                mode: 'xy'
            },
            grid: {
                hoverable: true // IMPORTANT! this is needed for tooltip to work
            },
            tooltip: true,
            tooltipOpts: {
                content: "%s : Median Latency time at %x req/s was %y ms"
            },
            colors: ["#9ACD32", "#FF6347"]
        };
    },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesLatencyVsRequest"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotLatenciesVsRequest"), dataset, options);
        // setup overview
        $.plot($("#overviewLatenciesVsRequest"), dataset, prepareOverviewOptions(options));
    }
};

// Latencies vs Request
function refreshLatenciesVsRequest() {
        var infos = latenciesVsRequestInfos;
        prepareSeries(infos.data);
        if(isGraph($("#flotLatenciesVsRequest"))){
            infos.createGraph();
        }else{
            var choiceContainer = $("#choicesLatencyVsRequest");
            createLegend(choiceContainer, infos);
            infos.createGraph();
            setGraphZoomable("#flotLatenciesVsRequest", "#overviewLatenciesVsRequest");
            $('#footerLatenciesVsRequest .legendColorBox > div').each(function(i){
                $(this).clone().prependTo(choiceContainer.find("li").eq(i));
            });
        }
};

var hitsPerSecondInfos = {
        data: {"result": {"minY": 33.333333333333336, "minX": 1.61543178E12, "maxY": 33.333333333333336, "series": [{"data": [[1.61543178E12, 33.333333333333336]], "isOverall": false, "label": "hitsPerSecond", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.61543178E12, "title": "Hits Per Second"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of hits / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendHitsPerSecond"
                },
                selection: {
                    mode : 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y.2 hits/sec"
                }
            };
        },
        createGraph: function createGraph() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesHitsPerSecond"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotHitsPerSecond"), dataset, options);
            // setup overview
            $.plot($("#overviewHitsPerSecond"), dataset, prepareOverviewOptions(options));
        }
};

// Hits per second
function refreshHitsPerSecond(fixTimestamps) {
    var infos = hitsPerSecondInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if (isGraph($("#flotHitsPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesHitsPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotHitsPerSecond", "#overviewHitsPerSecond");
        $('#footerHitsPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var codesPerSecondInfos = {
        data: {"result": {"minY": 33.333333333333336, "minX": 1.61543178E12, "maxY": 33.333333333333336, "series": [{"data": [[1.61543178E12, 33.333333333333336]], "isOverall": false, "label": "200", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.61543178E12, "title": "Codes Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of responses / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendCodesPerSecond"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "Number of Response Codes %s at %x was %y.2 responses / sec"
                }
            };
        },
    createGraph: function() {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesCodesPerSecond"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotCodesPerSecond"), dataset, options);
        // setup overview
        $.plot($("#overviewCodesPerSecond"), dataset, prepareOverviewOptions(options));
    }
};

// Codes per second
function refreshCodesPerSecond(fixTimestamps) {
    var infos = codesPerSecondInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotCodesPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesCodesPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotCodesPerSecond", "#overviewCodesPerSecond");
        $('#footerCodesPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var transactionsPerSecondInfos = {
        data: {"result": {"minY": 33.333333333333336, "minX": 1.61543178E12, "maxY": 33.333333333333336, "series": [{"data": [[1.61543178E12, 33.333333333333336]], "isOverall": false, "label": "HTTP Request-success", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.61543178E12, "title": "Transactions Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of transactions / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendTransactionsPerSecond"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y transactions / sec"
                }
            };
        },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesTransactionsPerSecond"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotTransactionsPerSecond"), dataset, options);
        // setup overview
        $.plot($("#overviewTransactionsPerSecond"), dataset, prepareOverviewOptions(options));
    }
};

// Transactions per second
function refreshTransactionsPerSecond(fixTimestamps) {
    var infos = transactionsPerSecondInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyTransactionsPerSecond");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotTransactionsPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTransactionsPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTransactionsPerSecond", "#overviewTransactionsPerSecond");
        $('#footerTransactionsPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var totalTPSInfos = {
        data: {"result": {"minY": 33.333333333333336, "minX": 1.61543178E12, "maxY": 33.333333333333336, "series": [{"data": [[1.61543178E12, 33.333333333333336]], "isOverall": false, "label": "Transaction-success", "isController": false}, {"data": [], "isOverall": false, "label": "Transaction-failure", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.61543178E12, "title": "Total Transactions Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of transactions / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendTotalTPS"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y transactions / sec"
                },
                colors: ["#9ACD32", "#FF6347"]
            };
        },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesTotalTPS"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotTotalTPS"), dataset, options);
        // setup overview
        $.plot($("#overviewTotalTPS"), dataset, prepareOverviewOptions(options));
    }
};

// Total Transactions per second
function refreshTotalTPS(fixTimestamps) {
    var infos = totalTPSInfos;
    // We want to ignore seriesFilter
    prepareSeries(infos.data, false, true);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotTotalTPS"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTotalTPS");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTotalTPS", "#overviewTotalTPS");
        $('#footerTotalTPS .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

// Collapse the graph matching the specified DOM element depending the collapsed
// status
function collapse(elem, collapsed){
    if(collapsed){
        $(elem).parent().find(".fa-chevron-up").removeClass("fa-chevron-up").addClass("fa-chevron-down");
    } else {
        $(elem).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-up");
        if (elem.id == "bodyBytesThroughputOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshBytesThroughputOverTime(true);
            }
            document.location.href="#bytesThroughputOverTime";
        } else if (elem.id == "bodyLatenciesOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshLatenciesOverTime(true);
            }
            document.location.href="#latenciesOverTime";
        } else if (elem.id == "bodyCustomGraph") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshCustomGraph(true);
            }
            document.location.href="#responseCustomGraph";
        } else if (elem.id == "bodyConnectTimeOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshConnectTimeOverTime(true);
            }
            document.location.href="#connectTimeOverTime";
        } else if (elem.id == "bodyResponseTimePercentilesOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimePercentilesOverTime(true);
            }
            document.location.href="#responseTimePercentilesOverTime";
        } else if (elem.id == "bodyResponseTimeDistribution") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimeDistribution();
            }
            document.location.href="#responseTimeDistribution" ;
        } else if (elem.id == "bodySyntheticResponseTimeDistribution") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshSyntheticResponseTimeDistribution();
            }
            document.location.href="#syntheticResponseTimeDistribution" ;
        } else if (elem.id == "bodyActiveThreadsOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshActiveThreadsOverTime(true);
            }
            document.location.href="#activeThreadsOverTime";
        } else if (elem.id == "bodyTimeVsThreads") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTimeVsThreads();
            }
            document.location.href="#timeVsThreads" ;
        } else if (elem.id == "bodyCodesPerSecond") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshCodesPerSecond(true);
            }
            document.location.href="#codesPerSecond";
        } else if (elem.id == "bodyTransactionsPerSecond") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTransactionsPerSecond(true);
            }
            document.location.href="#transactionsPerSecond";
        } else if (elem.id == "bodyTotalTPS") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTotalTPS(true);
            }
            document.location.href="#totalTPS";
        } else if (elem.id == "bodyResponseTimeVsRequest") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimeVsRequest();
            }
            document.location.href="#responseTimeVsRequest";
        } else if (elem.id == "bodyLatenciesVsRequest") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshLatenciesVsRequest();
            }
            document.location.href="#latencyVsRequest";
        }
    }
}

/*
 * Activates or deactivates all series of the specified graph (represented by id parameter)
 * depending on checked argument.
 */
function toggleAll(id, checked){
    var placeholder = document.getElementById(id);

    var cases = $(placeholder).find(':checkbox');
    cases.prop('checked', checked);
    $(cases).parent().children().children().toggleClass("legend-disabled", !checked);

    var choiceContainer;
    if ( id == "choicesBytesThroughputOverTime"){
        choiceContainer = $("#choicesBytesThroughputOverTime");
        refreshBytesThroughputOverTime(false);
    } else if(id == "choicesResponseTimesOverTime"){
        choiceContainer = $("#choicesResponseTimesOverTime");
        refreshResponseTimeOverTime(false);
    }else if(id == "choicesResponseCustomGraph"){
        choiceContainer = $("#choicesResponseCustomGraph");
        refreshCustomGraph(false);
    } else if ( id == "choicesLatenciesOverTime"){
        choiceContainer = $("#choicesLatenciesOverTime");
        refreshLatenciesOverTime(false);
    } else if ( id == "choicesConnectTimeOverTime"){
        choiceContainer = $("#choicesConnectTimeOverTime");
        refreshConnectTimeOverTime(false);
    } else if ( id == "choicesResponseTimePercentilesOverTime"){
        choiceContainer = $("#choicesResponseTimePercentilesOverTime");
        refreshResponseTimePercentilesOverTime(false);
    } else if ( id == "choicesResponseTimePercentiles"){
        choiceContainer = $("#choicesResponseTimePercentiles");
        refreshResponseTimePercentiles();
    } else if(id == "choicesActiveThreadsOverTime"){
        choiceContainer = $("#choicesActiveThreadsOverTime");
        refreshActiveThreadsOverTime(false);
    } else if ( id == "choicesTimeVsThreads"){
        choiceContainer = $("#choicesTimeVsThreads");
        refreshTimeVsThreads();
    } else if ( id == "choicesSyntheticResponseTimeDistribution"){
        choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
        refreshSyntheticResponseTimeDistribution();
    } else if ( id == "choicesResponseTimeDistribution"){
        choiceContainer = $("#choicesResponseTimeDistribution");
        refreshResponseTimeDistribution();
    } else if ( id == "choicesHitsPerSecond"){
        choiceContainer = $("#choicesHitsPerSecond");
        refreshHitsPerSecond(false);
    } else if(id == "choicesCodesPerSecond"){
        choiceContainer = $("#choicesCodesPerSecond");
        refreshCodesPerSecond(false);
    } else if ( id == "choicesTransactionsPerSecond"){
        choiceContainer = $("#choicesTransactionsPerSecond");
        refreshTransactionsPerSecond(false);
    } else if ( id == "choicesTotalTPS"){
        choiceContainer = $("#choicesTotalTPS");
        refreshTotalTPS(false);
    } else if ( id == "choicesResponseTimeVsRequest"){
        choiceContainer = $("#choicesResponseTimeVsRequest");
        refreshResponseTimeVsRequest();
    } else if ( id == "choicesLatencyVsRequest"){
        choiceContainer = $("#choicesLatencyVsRequest");
        refreshLatenciesVsRequest();
    }
    var color = checked ? "black" : "#818181";
    if(choiceContainer != null) {
        choiceContainer.find("label").each(function(){
            this.style.color = color;
        });
    }
}

